package com.dgw.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import com.dgw.entity.User;

public class LoginInterceptor extends HandlerInterceptorAdapter{

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
	     String requestUri = request.getRequestURI();
	     String contextPath = request.getContextPath();
	     String url = requestUri.substring(contextPath.length());        
	     if ("/login".equals(url)) {                  
	          	return true;
	     }else {               
	            User user =  (User)request.getSession().getAttribute("user"); 
	            if(user == null){
                     response.sendRedirect(request.getContextPath() + "/login?callbackUrl=" + requestUri);
                     return false;
	            }else{
	            	 return true;
	            }
	    }
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		super.postHandle(request, response, handler, modelAndView);
	}

	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		super.afterCompletion(request, response, handler, ex);
	}

	@Override
	public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		super.afterConcurrentHandlingStarted(request, response, handler);
	}

}
